﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace socketForm
{
    public class WriteLogPublic
    {
        /// <summary>
        /// 记录日志
        /// </summary>
        /// <param name="projectname">项目名称</param>
        /// <param name="controllername">控制器名称</param>
        /// <param name="strlog">日志内容</param>
        public static void WriteLogFunStr(string strlog)
        {
            string sfilepath = $"{SqlConfig.filePath}\\{DateTime.Now.ToString("yyyyMM")}"; // 根据项目名称等创建文件夹
            string sfilename = $"log{DateTime.Now.ToString("dd")}.log";
            sfilename = sfilepath + "\\" + sfilename; // 文件的绝对路径
                                                      // if (!Directory.Exists(sfilepath)) // 验证路径是否存在（此句可省略，因为 CreateDirectory 方法创建文件路径前会判断是否存在）
            Directory.CreateDirectory(sfilepath); // 不存在则创建
            using (FileStream fs = new FileStream(sfilename, FileMode.Append, FileAccess.Write)) // FileMode.Append：追加内容
            {
                using (var sw = new StreamWriter(fs))
                {
                    sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss") + " --- " + strlog);
                }
            }
        }
        public static void DeleteLogFun() {
            string delFlie = DateTime.Now.AddMonths(-1).ToString("yyyyMM");
            string fileFullPath = $"{SqlConfig.filePath}\\{delFlie}"; // 根据项目名称等创建文件夹                                                                                           // 1、首先判断文件或者文件路径是否存在
            if (File.Exists(fileFullPath))
            {
                // 2、根据路径字符串判断是文件还是文件夹
                FileAttributes attr = File.GetAttributes(fileFullPath);
                // 3、根据具体类型进行删除
                if (attr == FileAttributes.Directory)
                {
                    // 3.1、删除文件夹
                    Directory.Delete(fileFullPath, true);
                }
                else
                {
                    // 3.2、删除文件
                    File.Delete(fileFullPath);
                }
                File.Delete(fileFullPath);
            }
        }
    }
}
